﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AFCEPF.BankApplication.DAL
{
    /// <summary>
    /// L'attribut AttributeUsage nous permet de définir
    /// l'usage qui pourra être fait de notre attribut
    /// TableAttribute.
    /// Celui-ci ne pourra décorer que des propriétés,
    /// ne pourra être dupliqué pour décorer plusieurs 
    /// fois une même propriété, et sera hérité.
    /// </summary>
    [AttributeUsage(AttributeTargets.Property ,
                    AllowMultiple = false,
                    Inherited = true)]
    public class FieldAttribute : Attribute
    {
        private string _fieldName;
        private bool _isPrimaryKey;

        /// <summary>
        /// ctor
        /// </summary>
        /// <param name="fieldName">Name of the field.</param>
        public FieldAttribute(string fieldName)
        {
            _fieldName = fieldName;
            _isPrimaryKey = false;
        }





        /// <summary>
        /// Gets the name of the field.
        /// </summary>
        public string FieldName
        {
            get { return _fieldName; }            
        }

        /// <summary>
        /// Gets a value indicating if the 
        /// decorated property represents the 
        /// mapped table's primary key..
        /// </summary>
        public bool IsPrimaryKey
        {
            get { return _isPrimaryKey; }
            set { _isPrimaryKey = value; }
        }
    }
}
